import { _decorator, Component } from 'cc';
import SVGAPlayer from '../../svga-cocos/cocos/svga-player';

const { ccclass, property } = _decorator;

@ccclass('ControlSVGA')
export class ControlSVGA extends Component {
    @property(SVGAPlayer)
    firstSVGAPlayer: SVGAPlayer = null; // 第一个 SVGA 播放器

    @property(SVGAPlayer)
    secondSVGAPlayer: SVGAPlayer = null; // 第二个 SVGA 播放器

    @property(SVGAPlayer)
    thirdSVGAPlayer: SVGAPlayer = null; // 第三个 SVGA 播放器

    @property(SVGAPlayer)
    scoreSVGAPlayer: SVGAPlayer = null; // 数字 SVGA 播放器

    start() {
        if (!this.firstSVGAPlayer || !this.secondSVGAPlayer || !this.thirdSVGAPlayer) {
            console.error('请在属性检查器中指定 firstSVGAPlayer, secondSVGAPlayer 和 thirdSVGAPlayer 节点');
            return;
        }
        this.preloadAnimations();

        // 设置第一个动画为无限循环播放
        this.firstSVGAPlayer.loops = -1;

        // 设置第三个动画为无限循环播放
        this.thirdSVGAPlayer.loops = -1;

        // 设置第一个动画播放完成后的回调（虽然它会无限循环，但为了安全起见）
        this.firstSVGAPlayer.onFinished(() => {
            console.log('第一个 SVGA 动画播放完成（不应该发生）');

            // 如果第一个动画意外停止，重新启动它
            this.firstSVGAPlayer.playSVGA();
        });

        // 设置第二个动画播放完成后的回调
        this.secondSVGAPlayer.onFinished(() => {
          //  console.log('第二个 SVGA 动画播放完成');

            // 停止第二个动画并清除内容
            this.secondSVGAPlayer.stopAnimation(true);

            // 重新启动第一个动画
            this.firstSVGAPlayer.playSVGA();
        });

        // 设置第三个动画播放完成后的回调（虽然它会无限循环，但为了安全起见）
        this.thirdSVGAPlayer.onFinished(() => {
            console.log('第三个 SVGA 动画播放完成（不应该发生）');

            // 如果第三个动画意外停止，重新启动它
            this.thirdSVGAPlayer.playSVGA();
        });

        // 开始播放第一个动画
        this.firstSVGAPlayer.playSVGA();
        // 开始播放第三个动画
        this.thirdSVGAPlayer.playSVGA();
    }

    // 预加载所有动画数据
    preloadAnimations() {
        if (this.firstSVGAPlayer.svgaData) {
            this.firstSVGAPlayer.setVideoBuffer(this.firstSVGAPlayer.svgaData, false);
            this.firstSVGAPlayer.stopAnimation(true);

        }
        if (this.secondSVGAPlayer.svgaData) {
            this.secondSVGAPlayer.setVideoBuffer(this.secondSVGAPlayer.svgaData, false);
            this.secondSVGAPlayer.stopAnimation(true);
        }
        if (this.thirdSVGAPlayer.svgaData) {
            this.thirdSVGAPlayer.setVideoBuffer(this.thirdSVGAPlayer.svgaData, false);
            this.thirdSVGAPlayer.stopAnimation(true);
        }
        if (this.scoreSVGAPlayer.svgaData) {
            this.scoreSVGAPlayer.setVideoBuffer(this.scoreSVGAPlayer.svgaData, false);
            this.scoreSVGAPlayer.stopAnimation(true);
        }
    }

    // 假设有一个方法来触发第二个动画的播放
    triggerSecondAnimation() {
       // console.log('触发第二个动画');

        // 停止第一个动画并清除内容
        this.firstSVGAPlayer.stopAnimation(true);

        // 开始播放第二个动画
        this.secondSVGAPlayer.playSVGA();
    }

    scoreBgPlay(){
        this.scoreSVGAPlayer.playSVGA();
    }
   
}